package com.ruoyi.web.controller.applet.controller;

import java.util.Date;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.common.collect.Maps;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.JsonUtil;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.system.domain.SysAppUser;
import com.ruoyi.system.service.ISysAppUserService;
import com.ruoyi.web.controller.form.AppUserForm;
import com.ruoyi.web.controller.form.AppUserUpdateForm;

@Controller
@RequestMapping("/applet/appuser")
public class AppUserController {

	@Autowired
	private ISysAppUserService sysAppUserService;

	/**
	 * 获取条纹列表内容
	 * 
	 * @Description:
	 * @Author 豫东一棵草
	 * @DateTime 2020年10月18日 上午12:28:31
	 * @return
	 */
	@PostMapping("/login")
	@ResponseBody
	public AjaxResult login(AppUserForm userForm) {
		Map<String, Object> map = Maps.newConcurrentMap();
		String param = "appid=wxb5d5df7381e3d0c3&secret=52a658bef01d68dc70bc0cffcd590eb8&js_code=" + userForm.getCode()
				+ "&grant_type=authorization_code";
		String result = HttpUtils.sendGet("https://api.weixin.qq.com/sns/jscode2session", param);
		SysAppUser sysAppUser = new SysAppUser();
		BeanUtils.copyBeanProp(sysAppUser, userForm);
		Map<String, Object> resultMap = JsonUtil.toMap(result);
		boolean flag = map.containsKey("errcode");
		if (!flag) { // 获取数据成功
			String openid = resultMap.get("openid").toString();
			/* 是否已经注册，注册成功，返回信息；否则存储信息 */
			SysAppUser user = sysAppUserService.selectSysAppUserByOpenId(openid);
			if (user == null) {
				// String unionid = resultMap.get("unionid").toString();
				sysAppUser.setOpenId(openid);
				// sysAppUser.setUnionid(unionid);
				sysAppUser.setCreateTime(new Date());
				sysAppUserService.insertSysAppUser(sysAppUser);
				map.put("isBind", 0);
				map.put("userInfo", sysAppUser);
			} else {
				map.put("isBind", 1);
				map.put("userInfo", user);
			}

		}
		return AjaxResult.success("操作成功", map);
	}

	/**
	 * 获取用户信息
	 * 
	 * @Description:
	 * @Author 豫东一棵草
	 * @DateTime 2020年10月18日 下午5:53:42
	 * @param openId
	 * @return
	 */
	@PostMapping("/selectAppUserInfoByOpenId")
	@ResponseBody
	public AjaxResult selectAppUserInfoByOpenId(String openId) {
		Map<String, Object> map = Maps.newConcurrentMap();
		SysAppUser user = sysAppUserService.selectSysAppUserByOpenId(openId);
		if(null == user) {
			return AjaxResult.error("操作异常");
		}else {
			map.put("userInfo", user);
			return AjaxResult.success("操作成功", map);
		}
	}
	
	/**
	 * 获取条纹列表内容
	 * 
	 * @Description:
	 * @Author 豫东一棵草
	 * @DateTime 2020年10月18日 上午12:28:31
	 * @return
	 */
	@PostMapping("/editAppUser")
	@ResponseBody
	public AjaxResult editAppUser(AppUserUpdateForm userForm) {
		SysAppUser sysAppUser = new SysAppUser();
		BeanUtils.copyBeanProp(sysAppUser, userForm);
		int i = sysAppUserService.updateSysAppUserByOpenId(sysAppUser);
		if(i>0) {
			return AjaxResult.success("操作成功");
		}else {
			return AjaxResult.error("操作失败");
		}
		
	}
	
}
